ROS |
您所在的位置:网站首页 › pix ii相机 › ROS |
CANALYST-II的linux版本通信解析程序 我们解析程序的先后顺便为: open,打开can卡;initcan,对can卡进行初始化;start,启动can通道;就可以接收recive和发送transmit了。 open函数 DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved)其中形参第一个DevType为设备类型,第二个 DevIndex为索引号,通常为0,第三个Reserved为保留参数,通常为 0。 初始化函数 DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_INIT_CONFIG pInitConfig)其中形参第一个DevType为设备类型;第二个 DevIndex为索引号,通常为0;第三个CANIndex为CAN通道的索引,若使用can1,则为0,若使用can2,则为1;最后为初始化结构参数 //example VCI_INIT_CONFIG vci_conf; vci_conf.AccCode=0; vci_conf.AccMask=0xFFFFFFFF; vci_conf.Filter=1;//接收所有帧 启动CAN通道 DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex)根初始化函数类似,型参为设备类型,索引号以及CAN通道索引 接收函数 DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);其形参前三个跟start相同,但第四个形参 pReceive是用来接收的帧结构体VCI_CAN_OBJ数组的首指针。第五个len为用来接收的帧结构体数组的长度,最后 WaitTime为保留参数。 注: pReceive数组大小一定要比len大,否则会出现内参读写错误len为可接收的最大长度,实际的接收长度都比此长度小waittime保留参数一般设置为100函数的返回实际读取的帧数, 若=-1表示USB-CAN设备不存在或USB掉线。 发送函数 DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);发送函数跟接收函数类似,psend为发送结构体的首指针,length为发送帧的长度。 注: length一般为1,单帧的发送,发送效率较高接收函数一般为时间触发,每多少毫秒接收一次,发送函数一般为事件触发,有内容才发送 初始化成功
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |